1510 LOCATE 13,20:PRINT " Number of stars [";NUMST$;"]"
1520 LOCATE 11,41+LEN(STR$(XLIM)):INPUT XLIM1:IF XLIM1<>0 THEN XLIM=XLIM1
1530 LOCATE 12,41+LEN(STR$(YLIM)):INPUT YLIM1:IF YLIM1<>0 THEN YLIM=YLIM1
1540 LOCATE 13,41+LEN(NUMST$):INPUT NUMST1:IF NUMST1<>0 THEN NUMST=NUMST1
1550 GOSUB 4030
1560 REM plot stars
1570 FOR S=1 TO NUMST
1580 IF XLIM>0 THEN STX=CINT(RND*XLIM) ELSE XLIM2=ABS(XLIM):STX=CINT(RND*(639-XLIM2))+XLIM2
1590 IF YLIM>0 THEN STY=CINT(RND*YLIM) ELSE YLIM2=ABS(YLIM):STY=CINT(RND*(199-YLIM2))+YLIM2
1600 PSET (STX,STY)
1610 NEXT S
1620 PRESET (0,0):CH=1:GOTO 480
1630 REM status
1640 FOR KO=15 TO 17:KEY (KO) OFF:NEXT KO:MODE=6:GOSUB 3970
1650 LOCATE 11,20:PRINT"printing on line";L;"and column";C
1660 LOCATE 12,20:PRINT"filespec for this drawing is ";SPEC$
1670 LOCATE 13,20:PRINT"the time is ";TIME$
1680 LOCATE 15,20:PRINT"press any key to return.":BEEP
1690 A$=INKEY$:IF A$="" THEN 1690
1700 GOSUB 4030
1710 GOTO 480
1720 REM grid
1730 GET (0,0)-(639,199),FSCRN
1740 FOR GV=40 TO 600 STEP 40
1750 LINE (GV,0)-(GV,199)
1760 LOCATE 1,GV/8:PRINT GV
1770 NEXT GV
1780 FOR GH=16 TO 176 STEP 16
1790 LINE (0,GH)-(639,GH)
1800 LOCATE GH/8,2:PRINT GH
1810 NEXT GH
1820 LOCATE 4,28:PRINT "Press any key to return."
1830 A$=INKEY$:IF A$="" THEN 1830
1840 PUT (0,0),FSCRN,PSET
1850 GOTO 480
1860 REM lines
1870 GET (0,0)-(639,199),FSCRN:GOSUB 3700
1880 LXS=PNX+5:LYS=PNY+5
1890 LXE=LXS:LYE=LYS
1900 LXE2=LXS:LYE2=LYS
1910 COL=1
1920 A$=INKEY$:IF A$="" THEN GOTO 1920
1930 IF A$=CHR$(27) THEN PUT (0,0),FSCRN,PSET:GOTO 480
1940 IF A$=CHR$(0)+CHR$(59) THEN SOUND 40,1:COL=0:GOTO 1920
1950 IF A$=CHR$(0)+CHR$(60) THEN SOUND 4000,1:COL=1:GOTO 1920
1960 IF A$=CHR$(13) THEN PUT (0,0),FSCRN,PSET:LINE (LXS,LYS)-(LXE,LYE),COL:CH=1:GOTO 480
1970 IF A$=CHR$(0)+CHR$(72) THEN LYE2=LYE2-1:GOTO 2050 'up
1980 IF A$=CHR$(0)+CHR$(75) THEN LXE2=LXE2-1:GOTO 2050 'left
1990 IF A$=CHR$(0)+CHR$(77) THEN LXE2=LXE2+1:GOTO 2050 'right
2000 IF A$=CHR$(0)+CHR$(80) THEN LYE2=LYE2+1:GOTO 2050 'down
2010 IF A$=CHR$(56) THEN LYE2=LYE2-10:GOTO 2050 'up 10
2020 IF A$=CHR$(52) THEN LXE2=LXE2-20:GOTO 2050 'left 20
2030 IF A$=CHR$(54) THEN LXE2=LXE2+20:GOTO 2050 'right 20
2040 IF A$=CHR$(50) THEN LYE2=LYE2+10 ELSE SOUND 3000,.3:GOTO 1920 'down 10
2050 LINE (LXS,LYS)-(LXE,LYE),0
2060 LXE=LXE2:LYE=LYE2
2070 LINE (LXS,LYS)-(LXE,LYE),1
2080 GOTO 1920
2090 REM circles
2100 FOR KO=15 TO 17:KEY (KO) OFF:NEXT KO
2110 MODE=7:GET (0,0)-(639,199),FSCRN:GOSUB 3970
2120 LOCATE 11,20:PRINT" S - Set up parameters"
2130 LOCATE 12,20:PRINT" P - Use Pointer for centre; goto `s' opt"
2140 LOCATE 13,20:PRINT" D - Draw according to current parameters"
2150 LOCATE 14,20:PRINT" E - Erase current circle"
2160 'locate 15,20:print" C - Change circle units; currently ";cedg$
2170 A$=INKEY$:IF A$="" THEN 2170
2180 IF A$="S" OR A$="s" THEN 2240
2190 IF A$="P" OR A$="p" THEN GOSUB 4030:GOSUB 3700:X=PNX+5:Y=PNY+5:GOTO 2240
2200 IF A$="D" OR A$="d" THEN CCOL=1:GOTO 2400
2210 IF A$="E" OR A$="e" THEN CCOL=0:GOTO 2400
2220 'if a$="C" or a$="c" then if cedg$="radians" then cedg$="degrees":locate 15,56:?cedg$ else cedg$="radians":locate 15,56:?cedg$:sound 3000,.3:goto 2170
2230 IF A$=CHR$(27) THEN GOSUB 4030:GOTO 480 ELSE SOUND 3000,.3:GOTO 2170
3190 LOCATE 11,20:PRINT"P - Point to area to be moved/copied"
3200 LOCATE 12,20:PRINT"L - Specify new location of block"
3210 LOCATE 13,20:PRINT"B - Put block on new location"
3220 LOCATE 14,20:PRINT"E - Erase specified area"
3230 LOCATE 15,20:PRINT"C - Change activity; currently ";MOVACT$
3240 A$=INKEY$:IF A$="" THEN 3240
3250 IF A$="P" OR A$="p" THEN 3310
3260 IF A$="L" OR A$="l" THEN GOSUB 4030:GOSUB 3700:MOVPLCX=PNX+5:MOVPLCY=PNY+5:GOTO 3180
3270 IF A$="B" OR A$="b" THEN GOSUB 4030:IF MOVACT$="move" THEN PUT (MOVULX,MOVULY),MVER,XOR:PUT (MOVPLCX,MOVPLCY),MVER:GOTO 480 ELSE PUT (MOVPLCX,MOVPLCY),MVER:GOTO 480
3280 IF A$="E" OR A$="e" THEN GOSUB 4030:LINE (MOVULX,MOVULY)-(MOVLRX,MOVLRY),0,BF:GOTO 480
3290 IF A$="C" OR A$="c" THEN SOUND 3000,.3:IF MOVACT$="move" THEN MOVACT$="copy":LOCATE 15,51:PRINT MOVACT$:GOTO 3240 ELSE MOVACT$="move":LOCATE 15,51:PRINT MOVACT$:GOTO 3240
3300 IF A$=CHR$(27) THEN GOSUB 4030:GOTO 480 ELSE SOUND 3000,.3:GOTO 3240
3490 FOR KO=15 TO 17:KEY (KO) OFF:NEXT KO:SCREEN 0,0,0:COLOR 7,1,1:CLS:LOCATE 25,16,0
3500 BLOAD "help.scr"
3510 A$=INKEY$:IF A$="" THEN 3510
3520 IF A$=CHR$(27) THEN SCREEN 2:OUT &H3D9,7:PUT (0,0),FSCRN:RETURN
3530 IF ASC(A$)=0 THEN PRINT"Sorry! You have to REGISTER to get this feature!":FOR X=1 TO 1000:NEXT X:LOCATE 25,16,0:PRINT SPACE$(48):GOTO 3510 ELSE SOUND 3000,.3:GOTO 3510